“Middleware” is a software platform aimed at enabling synchronization of data from backend systems on to remote devices (e.g., dial-up computer terminals; personal digital assistants (PDAs)). Middleware provides data consolidation from the backend, identifying what data needs to go to which users. Data is queued by the middleware. When a user comes online from a remote device, the middleware synchronizes with the remote device, downloading the queued data to the remote device.
In general, a “front-end” is a type of program or process that is responsible for collecting input from a user (e.g., a user interface), whereas a “backend” is a type of program or process that is responsible for processing the input from the front-end. A backend is not directly accessed by a user, and may carry out tasks independent of the front-end. For example, a user could request data from a database, not knowing that the data is refreshed on the backend on a daily basis. Among other responsibilities, a backend establishes virtual connections (sockets) between processes.
After synchronization between the middleware and a remote device, a user may go offline and perform various tasks. The next time the user comes online, the data is again synchronized between the remote device and the backend system through the middleware.
Middleware uses a queue or queues in order to enable fast synchronization. Until the user comes online the data remains queued. A synchronization module on the middleware and/or the remote device extracts the data from the queue and synchronizes with the remote device. Such data might include sales orders, invoices, purchase approvals, etc. If the user does not come online for days or weeks, the result may be a loss of business opportunities as the data remains waiting in the queue.